[ChatGPT x Unity] 感情表現ができるAIキャラクターに声と動きをつけてみた
こんにちは、ゲームソリューショングループの入井です。
先日、ChatGPTから感情をパラメータとして受け取り、それに応じて表情を変化させるAIキャラクターを以下の記事で紹介しました。
今回は、このキャラクターに声と動きをつけることで、より感情が伝わりやすくなるようパワーアップさせてみました。
今回作ったもの
プロンプトで、めそ子の公式設定である名前と役職を自覚するよう指示を入れました。
笑ったり
悲しんだり
怒ったりします
アニメーションはMixamoのものを使用
無料で使用できる3Dモデル用アニメーションを公開しているMimxamoというサイトから、必要なアニメーションをダウンロードしました。
海外製だからかは分かりませんが、女性キャラクター用のアニメーションでも割りとワイルドな物が多く、めそ子のキャラクターに合いそうなものを探すのに少し苦労しました。
感情に対応したアニメーションをするように
Mixamoからダウンロードしたアニメーションを、Unityに取り込んで使用しました。その際は、こちらのサイトの解説を参考にさせていただきました
#2【備忘録】Unityに取り込んだVroidをMixamoで動かしてみる【無謀にも3D東方二次創作ゲーム作成】|しょう@ゆっくり学ぶチャンネル|note
アニメーションコントローラーに各アニメーションをセットし、スクリプトから任意のアニメーションを実行できるようパラメータを設定しています。
ユーザーのメッセージを受け付けてから、ChatGPTからのレスポンスを受け取るまでは、考え事をしているアニメーションを流しているのですが、これは1つのアニメーションを開始・中間・終了の3つに分割し、レスポンス待ちの間は中間部分のループさせています。
声はVOICEVOXを使用し、感情に対応した声色を出力
声の再生には、VOICEVOXという無料の読み上げソフトを使用しています。
このソフトは立ち上げるとローカルにAPIサーバーが立ち上がり、そこからHTTP経由で任意の声が取得できます。
声を取得する周りのコードは、こちらのサイトのものを参考にさせていただきました。ほぼChatGPTで書かれているコードらしく、つくづく凄いツールだなと思いました。
GPT-3とVoiceVoxを活用してAIエージェントを作る!【Unity】|ねぎぽよし|note
VOICEVOXには、いくつかのキャラクターが存在し、それぞれ違う声を持っています。今回は、喜怒哀楽の声色を使い分けられることと、めそ子のイメージに合っていると感じたことから、『WhiteCUL』というキャラクターを使っています。
まとめ
AIキャラクターの感情表現をパワーアップさせてみました。やはり、声と動きがつくとキャラクターのイキイキとして、会話の楽しさが更に上がった気がします。
今回は、ChatGPTというよりUnityの操作で苦労した面が多かったですが、色々なことを試すことができて面白かったです。
次回は、ChatGPTと同じくOpenAIが公開しているWhisperというサービスを使い、こちらからの声を入力できるようにすることを検討しています。